package com.example.cwgl.service.impl;

import com.example.cwgl.dao.LicaiMapper;
import com.example.cwgl.entity.Licai;
import com.example.cwgl.entity.Licaiway;
import com.example.cwgl.service.LiCaiService;
import com.example.cwgl.utils.PageModel;
import com.example.cwgl.utils.Result;
import com.example.cwgl.utils.ResultUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;


@Service
public class LiCaiServiceImpl implements LiCaiService {

    @Resource
    private LicaiMapper mapper;

    @Override
    public int add(Licai licai) {
        if(licai.getType().equals("3")){
            licai.setTypeid(3);
            Float money = -licai.getMoney();
            licai.setMoney(money);
        }
        return mapper.add(licai);
    }

    @Override
    public int update(Licai licai) {
        if(licai.getMoney() < 0){
            licai.setTypeid(3);
        }
        return mapper.update(licai);
    }

    @Override
    public int del(int id) {
        return mapper.del(id);
    }

    @Override
    public Result<Licai> findByWhere(PageModel model) {
        try {
            List<Licai> licais = mapper.findByWhere(model);
            if (licais.size()>=0){
                Result<Licai> result = ResultUtil.success(licais);
                result.setTotal(mapper.getTotalByWhere(model));
                if (result.getTotal() == 0) {
                    result.setMsg("没有查到相关数据");
                } else {
                    result.setMsg("数据获取成功");
                }
                return result;
            }else {
                return ResultUtil.unSuccess("获取数据失败！");
            }
        }catch (Exception e){
            return ResultUtil.error(e);
        }
    }

    @Override
    public Result<Licai> findByWhere2(PageModel model) {
        try {
            List<Licai> licais = mapper.findByWhere(model);
            if (licais.size()>=0){
                Result<Licai> result = ResultUtil.success(licais);
                result.setTotal(mapper.getTotalByWhere2(model));
                if (result.getTotal() == 0) {
                    result.setMsg("没有查到相关数据");
                } else {
                    result.setMsg("数据获取成功");
                }
                return result;
            }else {
                return ResultUtil.unSuccess("获取数据失败！");
            }
        }catch (Exception e){
            return ResultUtil.error(e);
        }
    }

    @Override
    public Result<Licai> findByWhereNoPage(Licai licai) {
        try {
            String endTime = licai.getEndTime();
            DateFormat f = new SimpleDateFormat("yyyy-MM-dd");
            Date  d  =  new Date(f.parse(endTime).getTime()+24*3600*1000);
            licai.setEndTime(f.format(d));
            List<Licai> licais = mapper.findByWhereNoPage(licai);
            if (licais.size()>=0){
                Result<Licai> result = ResultUtil.success(licais);
                result.setMsg("数据获取成功");
                return result;
            }else {
                return ResultUtil.unSuccess("没有找到符合条件的属性！");
            }
        }catch (Exception e){
            return ResultUtil.error(e);
        }
    }

    @Override
    public List<Licaiway> getAllicaiways() {
        return mapper.getAllicaiways();
    }

    @Override
    public List<Map<String,Float>>  getMonthlyInfo(PageModel<Licai> model) {
        return mapper.getMonthlyInfo(model);
    }
}
